package com.atguigu.aoppreview.proxy;

import com.atguigu.aoppreview.PayService;

/**
 * @Author: shenhao
 * @CreatTime: 2024/11/3 14:34
 * @Version: 1.0
 * 静态代理代码 通过构造注入注入需要代理的类,并且和原来的类继承相同的接口
 */
public class PayProxy implements PayService {
    private PayService payService;
    //构造注入 用组合代替继承
    public PayProxy(PayService payService) {
        this.payService = payService;
    }
    @Override
    public void pay() {
        before();
        payService.pay();
        after();
    }

    public void before(){
        System.out.println("---before: 打开微信");
    }

    public void after(){
        System.out.println("---after: 关闭微信");
    }
}
